package model

import "gorm.io/gorm"

type AgentModelProvider struct {
	gorm.Model
	Name         string  `gorm:"column:name;type:varchar(32);not null;comment:提供商名称;index:idx_name_status" json:"name"`
	BaseURL      string  `gorm:"column:base_url;type:varchar(255);not null;comment:API基础URL" json:"baseUrl"`
	AuthToken    string  `gorm:"column:auth_token;type:text;not null;comment:认证Token" json:"authToken"`
	ApiVersion   string  `gorm:"column:api_version;type:varchar(16);comment:API版本" json:"apiVersion"`
	RateLimit    int     `gorm:"column:rate_limit;comment:每分钟请求限制" json:"rateLimit"`
	CostPerToken float64 `gorm:"column:cost_per_token;comment:每个token的成本" json:"costPerToken"`
	MaxTokens    int     `gorm:"column:max_tokens;comment:最大token限制" json:"maxTokens"`
	Timeout      int     `gorm:"column:timeout;comment:请求超时时间(秒)" json:"timeout"`
	Temperature  float64 `gorm:"column:temperature;not null;comment:温度" json:"temperature"`
	IsDefault    bool    `gorm:"column:is_default;default:false;comment:是否为默认提供商" json:"isDefault"`
	Priority     int     `gorm:"column:priority;default:0;comment:优先级" json:"priority"`
	Role         int     `gorm:"type:tinyint(1);column:is_role;default:0;comment:是否需要授权" json:"role"`
	AiModel      string  `gorm:"column:ai_model;default:null;comment:启用的ai模型" json:"aiModel"`
	Logo         string  `gorm:"column:logo;type:varchar(255);comment:提供商logo" json:"logo"`
	Description  string  `gorm:"column:description;type:text;comment:详细描述" json:"description"`
	Status       int     `gorm:"column:status;type:tinyint(1);not null;default:1;comment:状态 1:正常 0:禁用;index:idx_name_status" json:"status"`
}

func (AgentModelProvider) TableName() string {
	return "t_agent_model_provider"
}
